<%@ page import="com.lk.bean.Goods" %>
<%@ page import="com.lk.bean.CartItem" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
  @author  lk
  DateTime: 2020/4/14 0014 14:00
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加至购物车列表</title>
</head>
<body>
<%
    //购物车功能
    // 1:首先考虑我购买的是哪一件商品，这里可以使用id确认也可以使用session中取出哪一件商品
    Goods goods = (Goods) session.getAttribute("goods");

    // 2:考虑如何把商品放到购物车中
    // 2.1 :首先考虑是否有购物车，如果没有，则创建，如果有直接使用
    // 2.2 :其次先将购物车从session中拿出来，不存在就创建。
    Map<Integer, CartItem> cart = (Map<Integer, CartItem>)session.getAttribute("cart");
    //如果没有购物车，那么创建，只有第一次访问才会操作
    if (cart == null) {
        //new一个购物车
        cart = new HashMap<>();
    }

    // 3:考虑如何把商品放到购物车中
    // 3.1 :第一考虑购物车中是否有该商品，所以先从购物车中获取该商品，如果为空，那么没有该商品
    CartItem item = (CartItem) cart.get(Integer.parseInt(goods.getGoodsId()));
    if (item == null) {
        //如果购物车中不存在该商品，那么创建，且数量默认为
        item = new CartItem();
        //将商品放到购物车中
        item.setGoods(goods);
        //将商品的默认数量为
        item.setNumber(1);
    } else {
        //如果购物车中以及有该商品，那么数量加
        item.setNumber(item.getNumber() + 1);
    }

    // 4:考虑如何把购物车项(即挑选的商品是哪一个和商品的数量)放到购物车中
    cart.put(Integer.parseInt(goods.getGoodsId()), item);

    // 5:将购物车放到session中，方便后面取出来
    session.setAttribute("cart", cart);

    response.sendRedirect("cart.jsp");
%>
</body>
</html>
